package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.provider.model.dto.DeviceAlertDto;
import com.csun.cmny.provider.model.dto.OldmanRpcDto;
import com.csun.cmny.provider.model.dto.PointCardAccountDto;
import com.csun.cmny.provider.model.dto.PointCardAccountQueryDto;
import com.csun.cmny.provider.model.vo.*;
import com.csun.cmny.provider.model.vo.nursing.NursingGroupOldmanVo;
import com.csun.cmny.provider.model.vo.nursing.NursingGroupRoomVo;
import com.csun.cmny.provider.model.vo.nursing.NursingGroupUserVo;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-01-22 13:57
 * @Description: the interface omc rpc service
 */
public interface OmcRpcService {

    /**
     * get oldman by oldman id
     *
     * @param oldmanRpcDto  oldman rpc dto
     *
     * @return  the oldman rpc vo
     */
    OldmanRpcVo getOldmanByOldmanId(OldmanRpcDto oldmanRpcDto);

    /**
     * query room building by room id
     *
     * @param roomId    room id
     *
     * @return  the room building bo
     */
    RoomBuildingVo queryRoomBuildingByRoomId(Integer roomId);

    /**
     * query oldman bed room building by oldman id
     *
     * @param oldmanId  oldman id
     *
     * @return          oldman bed room building vo
     */
    OldmanBedRoomBuildingVo queryOldmanBedRoomBuildingByOldmanId(Integer oldmanId);

    /**
     * query oldman bed room building by bed id
     *
     * @param bedId bed id
     *
     * @return      oldman bed room building vo
     */
    OldmanBedRoomBuildingVo queryOldmanBedRoomBuildingByBedId(Integer bedId);

    /**
     * query oldman special case by oldman id
     *
     * @param oldmanId  the oldman id
     *
     * @return  the oldman special case
     */
    String queryOldmanSpecialCaseByOldmanId(Integer oldmanId);

    /**
     * query nursing group user by user id
     *
     * @param userId    the user id
     *
     * @return  the nursing group user vo
     */
    NursingGroupUserVo queryNursingGroupUserByUserId(Long userId);

    /**
     * query nursing group room by room id
     *
     * @param roomId    the room id
     *
     * @return  the nursing group room vo
     */
    NursingGroupRoomVo queryNursingGroupRoomByRoomId(Integer roomId);

    /**
     * query nursing group oldman vo
     *
     * @param oldmanId  the oldman id
     *
     * @return  the nursing group oldman vo
     */
    NursingGroupOldmanVo queryNursingGroupOldmanByOldmanId(Integer oldmanId);

    /**
     * syncAlertMsgToShiftLog
     *
     * @param dto
     *
     * @return  Integer
     */
    Integer syncAlertMsgToShiftLog(DeviceAlertDto dto);

    /*根据房间id查询对应的老人id*/
    Long selectOldByRoomId(Long roomId);

    /*
    * 根据机构id查询life房间
    * */
    List<LifeRoomBuildingVo> listRoomByGroupId(Long groupId);

    /*
    * 查询一卡通账户详情
    * */
    List<PointCardAccountVO> listPointCardAccount(PointCardAccountQueryDto pointCardAccountQueryDto);

    /*
    * 创建一卡通账户
    * */
    Integer addPointCardAccount(PointCardAccountDto dto);

    /*
    * 删除一卡通账户
    * */
    Integer deletePointCardAccount(Long deviceId);

    /*
    * 查询房间床位id
    * */
    List<Integer> listBedByRoomId(Integer intValue);
}
